package chpt03;

import java.time.LocalDate;

public class PersonV3 {
	private int id;
	private String name;
	private String tel;
	private LocalDate date;
	
	{   // 这里是初始化块代码
		System.out.println(id+", "+name+", "+tel+", "+date);
		id = -1;
	}

	// 观察构造方法的方法名。没有返回值，也不使用void修饰。
	public PersonV3(int id, String name) {
		this.id = id;
		this.name = name;
	}

	public PersonV3(int id, String name, String tel) {
		// this(...)调用了重载的构造方法,必须放到构造方法内第一行
		this(id, name); 
		/*this.id = id;
		this.name = name;*/
		this.tel = tel;
	}

	/**
	 * 对属性name, tel与date进行初始化。其中，对date的初始化使用 了LocalDate.of对传入的y, m, d生成相应的对象。
	 * 
	 * @param name 姓名
	 * @param tel  电话
	 * @param y    代表年
	 * @param m    代表月
	 * @param d    代表一个月中的第几天
	 */
	public PersonV3(String name, String tel, int y, int m, int d) {
		this.name = name;
		this.tel = tel;
		this.date = LocalDate.of(y, m, d);
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getTel() {
		return tel;
	}

	public void setTel(String tel) {
		this.tel = tel;
	}

	public LocalDate getDate() {
		return date;
	}

	public void setDate(LocalDate date) {
		this.date = date;
	}
	// 返回一个当前对象的字符串表示，便于调式。
	@Override
	public String toString() {
		return "PersonV3 [id=" + id + ", name=" + name + 
				", tel=" + tel + ", date=" + date + "]";
	}

}
